package com.ruoyi.whole.service.impl;

import java.util.List;

import com.ruoyi.whole.domain.InfoBulkPlanAddVo;
import com.ruoyi.whole.domain.InfoWholeIndex;
import com.ruoyi.whole.domain.InfoWholeTarget;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.whole.mapper.InfoWholePlanMapper;
import com.ruoyi.whole.domain.InfoWholePlan;
import com.ruoyi.whole.service.IInfoWholePlanService;
import org.springframework.transaction.interceptor.TransactionAspectSupport;

/**
 * 目标管理-部门整体任务Service业务层处理
 *
 * @author ruoyi
 * @date 2022-02-09
 */
@Service
public class InfoWholePlanServiceImpl implements IInfoWholePlanService
{
    @Autowired
    private InfoWholePlanMapper infoWholePlanMapper;

    /**
     * 查询目标管理-部门整体任务
     *
     * @param id 目标管理-部门整体任务主键
     * @return 目标管理-部门整体任务
     */
    @Override
    public InfoWholePlan selectInfoWholePlanById(Long id)
    {
        return infoWholePlanMapper.selectInfoWholePlanById(id);
    }

    /**
     * 查询目标管理-部门整体任务列表
     *
     * @param infoWholePlan 目标管理-部门整体任务
     * @return 目标管理-部门整体任务
     */
    @Override
    public List<InfoWholePlan> selectInfoWholePlanList(InfoWholePlan infoWholePlan)
    {
        return infoWholePlanMapper.selectInfoWholePlanList(infoWholePlan);
    }

    /**
     * 新增目标管理-部门整体任务
     *
     * @param infoWholePlan 目标管理-部门整体任务
     * @return 结果
     */
    @Override
    public int insertInfoWholePlan(InfoWholePlan infoWholePlan)
    {
        return infoWholePlanMapper.insertInfoWholePlan(infoWholePlan);
    }

    /**
     * 修改目标管理-部门整体任务
     *
     * @param infoWholePlan 目标管理-部门整体任务
     * @return 结果
     */
    @Override
    public int updateInfoWholePlan(InfoWholePlan infoWholePlan)
    {
        return infoWholePlanMapper.updateInfoWholePlan(infoWholePlan);
    }

    /**
     * 批量删除目标管理-部门整体任务
     *
     * @param ids 需要删除的目标管理-部门整体任务主键
     * @return 结果
     */
    @Override
    public int deleteInfoWholePlanByIds(Long[] ids)
    {
        return infoWholePlanMapper.deleteInfoWholePlanByIds(ids);
    }

    /**
     * 删除目标管理-部门整体任务信息
     *
     * @param id 目标管理-部门整体任务主键
     * @return 结果
     */
    @Override
    public int deleteInfoWholePlanById(Long id)
    {
        return infoWholePlanMapper.deleteInfoWholePlanById(id);
    }

    @Override
    public int batchInsert(InfoBulkPlanAddVo infoBulkPlanAddVo) {
        try {
            List<InfoWholePlan> infoWholePlans = infoBulkPlanAddVo.getInfoWholePlans();
                for (InfoWholePlan infoWholePlan : infoWholePlans) {
                    infoWholePlan.setWholeId(infoBulkPlanAddVo.getWholeId());
                    infoWholePlanMapper.insertInfoWholePlan(infoWholePlan);
                }
            return 1;
        } catch (Exception e) {
            System.out.println(e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return 0;
        }
    }

    @Override
    public List<InfoWholePlan> selectProjectByDeptId(Long deptId) {
        return infoWholePlanMapper.selectProjectByDeptId(deptId);
    }

    @Override
    public List<InfoWholePlan> selectInfoWholePlansId(Long wholeId) {
        return infoWholePlanMapper.selectInfoWholePlansId(wholeId);
    }
}
